import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            int k = in.nextInt();
            in.nextLine();
            int[] nums = new int[n];
            Queue<Integer> queue = new PriorityQueue<Integer>();
            for (int i = 0; i < n; i++) {
                nums[i] = in.nextInt();
                queue.offer(nums[i]);
            }
            int sum = 0;
            int day = 0;
            while (sum <= k) {
                int tmp = queue.poll();
                sum += tmp;
                if (sum > k) {
                    break;
                }
                queue.offer(tmp * 2);
                day++;
            }
            System.out.println(day);
        }
    }
}
